1
超越逐點運算:理解歸約模式
AI023Lesson 8
00:00

雖然 逐點運算 將張量中的每個元素獨立處理, 歸約模式 引入資料依賴關係,其中多個輸入元素被合併為單一輸出值(例如總和、最大值或平均值)。為了高效地實現這些操作,必須彌補資料邏輯上的二維結構與硬體記憶體中線性表示之間的差距。

1. 2D 記憶體對映

二維張量在邏輯上是網格結構,但在記憶體中實際上是線性的。了解 列優先(row-major)行優先(column-major) 記憶體布局對於判斷歸約是否會連續存取記憶體位址,還是需要間隔存取至關重要。

2. 逐點運算與歸約拓撲

一個 矩陣複製 代表一種具有 $1:1$ 輸入到輸出對應關係的逐點運算。相反地,一個 歸約 是一種多對一($N:1$)的操作,需要跨執行緒共享累加結果,或在區塊內進行順序處理。

逐點運算(矩陣複製)歸約(每行最大值)

3. 維度塌縮

歸約由 操作所依據的軸而定。沿著軸 1(列)與軸 0(欄)進行歸約,會根本性地改變記憶體步距模式與硬體快取命中率。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>